package AccionBoton;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Enumeration;
import java.util.List;
import java.util.ResourceBundle;

import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

import modelUtil.Configuracion;
import modelUtil.Util;
import paginas.PaginaFuncionBoton;
import plantilla.AccionBotonTO;
import util.AccionesEjecutar;
import fachadaPlantilla.delegate.PlantillaFacade;

public class AccionAnhadirAccion implements ActionListener{
	
	
	private PaginaFuncionBoton _frame;
	
	public AccionAnhadirAccion(PaginaFuncionBoton frame){
		
		_frame = frame;
		
	}
	
	public void actionPerformed(ActionEvent e){
		
		JTree tree = _frame.getTree();
		DefaultMutableTreeNode nodo = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
		DefaultMutableTreeNode padre = (DefaultMutableTreeNode) nodo.getParent();
		
		DefaultMutableTreeNode abuelo = (DefaultMutableTreeNode) padre.getParent();
		Enumeration <String> conjunto = ResourceBundle.getBundle("internacionalizacion/Acciones").getKeys();
		Enumeration <String> conjunto2 = ResourceBundle.getBundle("internacionalizacion/Acciones").getKeys();
		String grupoAccion = Util.BuscarClave((String)padre.getUserObject(),conjunto);		  
		String AccionConcreta = Util.BuscarClave((String)nodo.getUserObject(),conjunto2);
		
		List<AccionBotonTO> acciones = _frame.get_botonTO().getAccionEjecutar();
	
		  
		if((((String)nodo.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString("AC_APL_E_ABRIR")))){
		AccionBotonTO accion = new AccionBotonTO(grupoAccion, AccionConcreta, _frame.getTextoBuscarAplicacion().getText());
		acciones.add(accion);
		_frame.getTextoBuscarAplicacion().setText("");
		}else{
			
			if((((String)nodo.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString(AccionesEjecutar.AC_APL_E_ABRIR_DOC)))){
				
				if(_frame.getTextoBuscarAp().getText().equals("")){
					
					Util.popup(0, ResourceBundle.getBundle("internacionalizacion/Etiquetas").getString("error_aplicacion_no_seleccionada"));
				}else{
				AccionBotonTO accion = new AccionBotonTO(grupoAccion, AccionConcreta, _frame.getTextoBuscarAp().getText()+"_Separador_"+_frame.getTextoBuscarFichero().getText());
				acciones.add(accion);}
				_frame.getTextoBuscarAp().setText("");
				_frame.getTextoBuscarFichero().setText("");

				
			}else{
			
			if((((String)padre.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString(AccionesEjecutar.APL_FUN)))){
				Enumeration <String> conjunto3 = ResourceBundle.getBundle("internacionalizacion/Acciones").getKeys();
				grupoAccion=Util.BuscarClave((String)abuelo.getUserObject(), conjunto3);
				System.out.println(AccionConcreta);
				AccionBotonTO accion;
				if(AccionConcreta.equals("AC_I_URL")){
					accion = new AccionBotonTO(grupoAccion, AccionConcreta, _frame.getTextoWeb().getText());

				}else{
			accion = new AccionBotonTO(grupoAccion, AccionConcreta, _frame.getTextoBuscar().getText());}
			_frame.getTextoBuscar().setText("");

			acciones.add(accion);
			
			
			}else{
				
				if((((String)nodo.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString(AccionesEjecutar.GA_LTR_O_PLB)))){
				AccionBotonTO accion = null;
				if(_frame.getI1().isSelected()){
					
					accion = new AccionBotonTO(AccionConcreta, _frame.get_botonTO().getTextoBoton());
				}else{
					if(_frame.getI2().isSelected()){
					accion = new AccionBotonTO(AccionConcreta, _frame.getTextoEscritura().getText());}
					_frame.getTextoEscritura().setText("");

				}
				
				acciones.add(accion);
				
				
				}else{
					
					if((((String)padre.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString(AccionesEjecutar.GA_TCL_ESP_TC)))){
						
						AccionBotonTO accion = null;
						if(_frame.getTexto().getText().equals("")){	
							String clave = Util.BuscarClave((String)nodo.getUserObject(), ResourceBundle.getBundle("internacionalizacion/Acciones").getKeys());
							if(clave==""){
							accion = new AccionBotonTO(grupoAccion, "{"+(String)nodo.getUserObject()+"}");
							}else{
								
								accion = new AccionBotonTO(grupoAccion, clave);

							}

						}else{
							
							accion = new AccionBotonTO(grupoAccion, _frame.getAccionCompuesta().getText());

						}
						
						acciones.add(accion);
						
						
						}else{
							
							if((((String)padre.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString(AccionesEjecutar.GA_AT)))){
								PlantillaFacade fachada = new PlantillaFacade();
								AccionBotonTO accion = null;
								accion = new AccionBotonTO(grupoAccion,fachada.GetDir(new File(Configuracion.instancia().getDirUsuarioActual()), (String)nodo.getUserObject()));
								acciones.add(accion);
								
								
								}else{
									if(((String)nodo.getUserObject()).equals(ResourceBundle.getBundle("internacionalizacion/Acciones").getString("AC_REP_SON"))){
										
										AccionBotonTO accion = new AccionBotonTO(grupoAccion, AccionConcreta, _frame.getTextoBuscar().getText());
										acciones.add(accion);
										
										_frame.getTextoBuscar().setText("");

									}else{
									AccionBotonTO accion = null;
									accion = new AccionBotonTO(grupoAccion, AccionConcreta);
									acciones.add(accion);
									}
								}
							}
						}
					}
					}
				}
		
		_frame.getListModel().removeAllElements();
		_frame.get_botonTO().setAccionEjecutar(acciones);
		_frame.getAccionCompuesta().setText("");
        for (int i=0; i<acciones.size();i++){
        	
            _frame.getListModel().addElement(ResourceBundle.getBundle("internacionalizacion/Acciones").getString(acciones.get(i).getGrupoAccion()));

            }
		_frame.pack();
		_frame.repaint();
		
	}
	
	


}
